package extend02;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:周次煜
 * Date: 2024-04-07
 * Time：21:57
 */
//public class Test3 {
//    public static void main(String[] args) {
//        int i = 10;
//
//        Integer ii = i; // 自动装箱
//        Integer ij = (Integer)i; // 自动装箱
//        System.out.println(ij);
//
//        int j = ii; // 自动拆箱
//        int k = (int)ii; // 自动拆箱
//        System.out.println(k);
//
//    }
//
//
//}
//
//
//class MyArray {
//    public Object[] array = new Object[10];
//    public Object getPos(int pos) {
//        return this.array[pos];
//    }
//    public void setVal(int pos,Object val) {
//        this.array[pos] = val;
//    }
//}
//public class TestDemo {
//    public static void main(String[] args) {
//        MyArray myArray = new MyArray();
//        myArray.setVal(0,10);
//        myArray.setVal(1,"hello");//字符串也可以存放
//        String ret = myArray.getPos(1);//编译报错
//        System.out.println(ret);
//    }
//}


class MyArray<T> {
    public T[] array;
    public MyArray() {
    }
    /**
     * 通过反射创建，指定类型的数组
     * @param clazz
     * @param capacity
     */
    public MyArray(Class<T> clazz, int capacity) {
        array = (T[]) Array.newInstance(clazz, capacity);
    }
    public T getPos(int pos) {
        return this.array[pos];
    }
    public void setVal(int pos,T val) {
        this.array[pos] = val;
    }
    public T[] getArray() {
        return array;
    }

    public static void main(String[] args) {
        MyArray<Integer> myArray1 = new MyArray<>(Integer.class,10);
        Integer[] integers = myArray1.getArray();
        integers[0]=1;
        integers[1]=2;
        integers[2]=1;
        System.out.println(Arrays.toString(integers));
    }
}

